package com.thunisoft.design.command.invoker;

import java.util.ArrayList;

import com.thunisoft.design.command.cmd.Command;

/**
 * 调用者/请求者（Invoker）角色：是请求的发送者，它通常拥有很多的命令对象，并通过访问命令对象来执行相关请求，它不直接访问接收者。
 * 
 * @title Waiter.java
 * @package com.thunisoft.design.invoker
 * @projectName spring.boot
 * @author yzj
 * @date 2020年5月19日 下午2:13:33
 */
public class Waiter implements IInvoker {

	private ArrayList<Command> children = new ArrayList<>();

	public void add(Command c) {
		children.add(c);
	}

	public void remove(Command c) {
		children.remove(c);
	}

	public Command getChild(int i) {
		return children.get(i);
	}

	public void execute() {
		for (Command obj : children) {
			obj.execute();
		}
	}
}
